#include "JsonUtil.h"
#include <json.h>
using namespace std;
using namespace Json;

JsonUtil::JsonUtil(/* args */)
{
}

JsonUtil::~JsonUtil()
{
}

string JsonUtil::mapParseStr(map<string, string> paramap)
{
    if (paramap.empty())
    {
        cout<<"转换数据不能为空"<<endl;
        return "";
    }
    //将map容器转换为一个json对象
    Value root;
    map<string,string>::iterator it=paramap.begin();
    for (; it != paramap.end(); it++)
    {
        pair<string,string>p=*it;
        string key=p.first;
        string value=p.second;
        root[key]=value;
    }
    //json序列化
    StyledWriter writer;
    string str=writer.write(root);
    return str;
}
//json反序列化
map<string, string> JsonUtil::strjsonParseMap(string parajson)
{
    Value root;
    map<string,string> resMap;
    if (parajson.empty())
    {
        cout<<"转化字符串不能为空"<<endl;
        return resMap;
    }
    //json反序列化
    Reader read;
    bool flag=read.parse(parajson,root,false);
    if (!flag)
    {
        cout<<"解析失败"<<endl;
        return resMap;
    }

    Value::Members members=root.getMemberNames();
    for (int i = 0; i < members.size(); i++)
    {
        string key=members.at(i);
        string value=root[key].asString();
        resMap[key]=value;
    }
    return resMap;
}
